
#ifndef	LEVEL_SELECT_STATE_HPP
#define	LEVEL_SELECT_STATE_HPP

#include <game_state/game_state.hpp>
#include <drawables/sprite.hpp>
#include <SFML/Graphics.hpp>
#include <level/level_fwd.hpp>
#include <vector>
#include <string>

class level_select_state : public base_game_state
{
public:

	level_select_state( );
	~level_select_state( );

	game_state_ptr step( float delta_time );
	void draw( );

private:

	typedef std::pair< std::string, sf::String > level_name_pair_t;
	typedef std::vector< level_name_pair_t > level_name_vector_t;
	level_name_vector_t m_levels;
	size_t m_selected;

	drawable_ptr m_background;

	sf::Sound m_select_sound;
	sf::Sound m_cycle_sound;
	bool m_switching;
};

#endif	//LEVEL_SELECT_STATE_HPP
